package com.tbit.uqbike.service.business;

import com.github.pagehelper.PageInfo;
import com.tbit.uqbike.object.pojo.BrandRemoteConfig;

import java.util.List;

/**
 * 品牌对接参数配置Service接口
 *
 * @author jing
 * @date 2021-04-21
 */
public interface BrandRemoteConfigService {

    /**
     * 查询品牌对接参数配置列表
     *
     * @param brandRemoteConfig 品牌对接参数配置
     * @return 品牌对接参数配置集合
     */
    PageInfo<BrandRemoteConfig> selectBrandRemoteConfigList(BrandRemoteConfig brandRemoteConfig);

    /**
     * @Description: 检查accountId和type是否唯一
     * @Param: [brandRemoteConfig]
     * @return: java.lang.String
     * @Author: Jing
     * @Date: 2021/4/21
     */
    public String checkConfigTypeUnique(BrandRemoteConfig brandRemoteConfig);

    /**
     * 新增品牌对接参数配置
     *
     * @param brandRemoteConfig 品牌对接参数配置
     * @return 结果
     */
    public int insertBrandRemoteConfig(BrandRemoteConfig brandRemoteConfig);

    /**
     * 新增多个品牌对接参数配置
     *
     * @param brandRemoteConfigList 品牌对接参数配置
     * @return 结果
     */
    public int addBrandRemoteConfig(List<BrandRemoteConfig> brandRemoteConfigList);

    /**
     * 修改品牌对接参数配置
     *
     * @param brandRemoteConfig 品牌对接参数配置
     * @return 结果
     */
    public int updateBrandRemoteConfig(BrandRemoteConfig brandRemoteConfig);

    /**
     * 根据品牌id和类型获取配置信息
     * @param brandId 品牌id
     * @param configType 配置类型
     * @return 品牌配置信 or null
     */
    BrandRemoteConfig getRemoteConfigByBrandIdAndConfigType(Integer brandId, Integer configType);
    /**
     * 删除品牌对接参数配置信息
     *
     * @param brandRemoteConfig 品牌对接参数配置
     * @return 结果
     */
    public int deleteBrandRemoteConfigById(BrandRemoteConfig brandRemoteConfig);

    String getTbitConfig(Integer brandId);

    void removeCache(Integer brandId,Integer configType);
}
